Disabling an automatic rotation function of mobile computing devices

ABSTRACT

Technology is generally described for disabling an automatic rotation function of mobile computing devices. The technology can detect a tilt angle of a display of the computing device in relation to a surface; and if the tilt angle is less than a specified threshold tilt angle, disable a rotation function.

CROSS REFERENCE TO RELATED APPLICATION(S)

This application is a national stage application of commonly assignedInternational Application No. PCT/US10/60125, filed Dec. 13, 2010.

BACKGROUND

Various mobile computing devices (“mobile devices”) automatically rotateinformation they display, e.g., when the mobile devices detect that theuser may be viewing the display in a rotated orientation. As examples,the APPLE® IPHONE® and IPAD® mobile devices rotate displayed informationautomatically when the user rotates the mobile device. Other examples ofmobile computing devices with rotation functions are digital cameras,“smartphones,” tablet computers, etc. When a user rotates the mobiledevice from a vertical or “portrait” orientation to a horizontal or“landscape” orientation, the computing device automatically rotates thedisplayed information so that the information remains in the sameorientation it was in before the user rotated the mobile device. As anexample, if the displayed information included the text “ABC123” in anormal reading orientation (see FIG. 1A) before the user rotated thecomputing device, and then the user rotated the display device byapproximately 90 degrees, the mobile device can rotate the text by 90degrees so that the displayed text remains in the normal readingorientation. (See FIG. 1C.)

Mobile devices employ one or more sensors to detect orientation withrespect to a plane (e.g., earth's surface) or force of gravity androtate the information so that the “top” of the displayed information isfarther from the plane than the “bottom” of the information. Examples ofsensors that mobile devices employ to detect their tilt angle areaccelerometers and gyroscopic sensors.

This automatic rotation function is useful when the user views thedisplay while standing, sitting, or lying in a prone position (i.e.,face down). When the user is lying in a supine position (i.e., face up),however, the rotation function is sometimes dysfunctional. When a useris in the supine position, the computing device can rotate the displayedinformation at undesirable times. To prevent this behavior, somecomputing devices include a switch (see, e.g., switch 104 in FIG. 1A) todisable the rotation function.

SUMMARY

In various embodiments, the technology implements a method performed bya computing device having a processor and memory, including: detecting atilt angle of a display of the computing device in relation to asurface; and if the tilt angle is less than a specified threshold tiltangle, disabling a rotation function.

In various embodiments, the technology includes a computer-readablestorage device storing computer-executable instructions, theinstructions including: detecting a tilt angle of a display of acomputing device in relation to a plane; and if the tilt angle is lessthan a specified threshold tilt angle, disabling a rotation function.

In various embodiments, the technology includes a system for detectingwhether to disable a rotation function of a computing device having aprocessor, memory, and a display, including: a sensor configured todetect a tilt angle of a display surface in relation to a plane; and acomponent configured to disable a rotation function of the computingdevice if a difference between the tilt angle and a specified thresholdtilt angle exceeds a specified value.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the drawings and the followingdetailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1C illustrate mobile devices in various orientations.

FIG. 2 is a block diagram of an illustrative embodiment of components ofthe technology for automatically disabling a rotation function of mobiledevices.

FIG. 3 illustrates use of a mobile device when a user is in a standingposition.

FIG. 4 illustrates use of a mobile device when a user is in a supineposition.

FIG. 5 is a flow diagram of an illustrative embodiment of a routineinvoked by the technology to determine whether to disable the rotationfunction.

FIG. 6 is a flow diagram of an illustrative embodiment of a routineinvoked by the technology to compute the tilt angle of the display inrelation to a plane.

FIG. 7 is a block diagram of an illustrative embodiment of a computingdevice that is arranged for disabling a rotation function in accordancewith at least some embodiments of the present disclosure.

DETAILED DESCRIPTION

Technology is described for automatically disabling a rotation functionof mobile devices (“the technology”). In various embodiments, when thetechnology determines that the angle between a display of the computingdevice and a plane (e.g., earth's surface) is less than or equal to aspecified threshold tilt angle (e.g., 90 degrees), the technology candisable the rotation function. The technology can receive the tiltangle, e.g., by receiving and interpreting a signal from a sensor.Examples of sensors are accelerometers and gyroscopic sensors. Othersensors that can assist in identifying a tilt angle can also beemployed. The technology can then compute a tilt angle of a display ofthe mobile device. As an example, the technology may compute the anglebetween the display and a plane, e.g., the surface of the earth. If thetilt angle is less than a specified threshold (e.g., less than or equalto 90 degrees), the technology may disable the rotation function (or“rotation feature”) of the mobile device. Otherwise, the rotationfunction may operate as it normally would. When the angle between thedisplay and a surface (e.g., earth's surface) is less than a specifiedthreshold tilt angle, the technology may conclude that the user of thecomputing device is viewing the mobile device while in a supineposition. Users generally find it convenient to view the display bytilting the display so that it is roughly parallel to the user's face orat least has an acute angle in comparison to the face generally. Whenthe user is sitting, standing, or lying in a prone position, the anglebetween the display and the earth's surface will generally be obtuse(greater than 90 degrees). On the other hand, when the user is lying ina supine position, the angle between the display and the earth's surfacewill generally be acute. Thus, by computing the angle between thedisplay and a plane, the technology can determine whether the display isbeing viewed while the user is in a supine position.

FIGS. 1A-1C illustrate mobile devices in various orientations. In FIG.1A, a mobile device 100 appears in a portrait or vertical orientation.The mobile device includes a display 102 and a rotation switch 104. Insome embodiments, a user may be able to specify that the technology isto be enabled or disabled, e.g., by using the rotation switch 104. Whenthe technology is disabled, the rotation function may operate as itnormally would—even when the tilt angle is less than the specifiedthreshold tilt angle. In FIGS. 1B and 1C, the mobile device 100 appearsin landscape or horizontal orientations. As is illustrated in FIGS. 1Band 1C in comparison to FIG. 1A, when a user rotates the mobile device100, a rotation function of the mobile device can rotate the informationdisplayed on the display 102 to facilitate viewing by the user.

FIG. 2 is a block diagram of an illustrative embodiment of components ofthe technology for automatically disabling a rotation function of mobiledevices. A mobile device may include various components 200 thatimplement the disclosed technology. As examples, a mobile device mayinclude a processor 202, a memory and/or other storage 204, and adisplay 208. The mobile device can also include a sensor 206. Examplesof sensors that mobile devices employ to detect their tilt angle areaccelerometers and gyroscopic sensors. In various embodiments, thesensors can provide an indication of an angle between the mobile device(e.g., the display 208 of the mobile device) and a reference plane(e.g., surface of the earth) or a force of gravity. The mobile devicecan also include a rotation component 210. In various embodiments, therotation component 210 can include a rotation function that determineswhether to rotate information displayed on display 102 (illustrated inFIG. 1A) and invokes a rotation function to actually rotate thedisplayed information. In various embodiments, mobile devices caninclude none, one, or more of these components 200.

FIG. 3 illustrates use of a mobile device when a user is in a standingposition. In the illustration, a user 302 is using a mobile device 304while standing on a surface 306. The angle formed between the display ofthe mobile device 304 and the surface on which the user is standing isan obtuse angle α (“alpha”) 308.

FIG. 4 illustrates use of a mobile device when a user is in a supineposition. In the illustration, a user 402 is using a mobile device 404while lying down on surface 406 in a supine position. The angle formedbetween the display of the mobile device 404 and the surface on whichthe user is lying down is an acute angle β (“beta”) 408.

FIG. 5 is a flow diagram of an illustrative embodiment of a routine 500invoked by the technology to determine whether to disable the rotationfunction. The routine 500 begins at block 502. At block 504, the routinedetects a tilt angle of the display of the mobile device in relation toa plane. As an example, the routine may detect the tilt angle betweenthe surface of the earth and the display of the mobile device. Inembodiments in which the sensor provides an angle in relation to theforce of gravity, the routine may compute the tilt angle by assumingthat the surface is orthogonal to the force of gravity and below themobile device. At decision block 506, the routine determines whether thedetected tilt angle is less than a specified threshold tilt value. Ifthe detected tilt angle is less than the specified threshold tilt value,the routine continues at block 508 otherwise, the routine continues atblock 510. As an example, when the detected tilt angle is less thanapproximately 90°, the routine may determine that the mobile device isbeing used while the user is in a supine position and so the rotationfunction should be disabled. In various embodiments, the specifiedthreshold tilt value can vary. In various embodiments, the routine mayinstead determine at decision block 506 whether the detected tilt angleis less than or equal to the specified threshold tilt value. At block508, because the routine has determined that the user is viewing themobile device while in a supine position, the routine disables therotation function. At block 510, because the routine has determined thatthe user is viewing the mobile device while not in a supine position,the routine enables the rotation function. The routine then returns atblock 512.

In various embodiments, the logic can flow as follows: block 502;followed by block 504; followed by decision block 506, which branches toblock 510 if the condition is false or to block 508 if the condition istrue. Thereafter, the logic flows from both blocks 508 and 510 to block512.

Those skilled in the art will appreciate that the logic illustrated inFIG. 5 and described above, and in each of the flow diagrams discussedbelow, may be altered in a variety of ways. For example, the order ofthe logic may be rearranged, sublogic may be performed in parallel,illustrated logic may be omitted, other logic may be included, etc.

FIG. 6 is a flow diagram of an illustrative embodiment of a routine 600invoked by the technology to compute the tilt angle of the display inrelation to a plane. The routine 600 begins at block 602. At block 604,the routine receives a signal from a sensor. The sensor can generate thesignal when it detects motion or tilt of the mobile device, e.g., inrelation to a plane. At block 606, the routine computes the tilt anglebetween the display of the mobile device and a specified plane, e.g. thesurface of the Earth. At block 608, the routine identifies thepreviously computed angle as the tilt angle. Other routines may employthis tilt angle to determine whether or not to enable or disable therotation function. At block 610, the routine returns.

In various embodiments, the logic can flow as follows: block 602;followed by block 604; followed by block 606; followed by block 608; andfollowed by block 610.

FIG. 7 is a block diagram illustrating an example computing device 700that is arranged for disabling a rotation function in accordance with atleast some embodiments of the present disclosure. In a very basicconfiguration 702, computing device 700 typically includes one or moreprocessors 704 and a system memory 706. A memory bus 708 may be used forcommunicating between processor 704 and system memory 706.

Depending on the desired configuration, processor 704 may be of any typeincluding but not limited to a microprocessor (μP), a microcontroller(μC), a digital signal processor (DSP), or any combination thereof.Processor 704 may include one more levels of caching, such as a levelone cache 710 and a level two cache 712, a processor core 714, andregisters 716. An example processor core 714 may include an arithmeticlogic unit (ALU), a floating point unit (FPU), a digital signalprocessing core (DSP Core), or any combination thereof. An examplememory controller 718 may also be used with processor 704, or in someimplementations memory controller 718 may be an internal part ofprocessor 704.

Depending on the desired configuration, system memory 706 may be of anytype including but not limited to volatile memory (such as RAM),non-volatile memory (such as ROM, flash memory, etc.) or any combinationthereof. System memory 706 may include an operating system 720, one ormore applications 722, and program data 724. Application 722 may includea rotation component 726 that is arranged to enable or disable therotation function. Program data 724 may include displayed information728 that may be useful while rotating the displayed information, as isdescribed herein. In some embodiments, application 722 may be arrangedto operate with program data 724 on operating system 720 such thatrotation of displayed information is enabled or disabled, e.g.,depending on an orientation of the display. This described basicconfiguration 702 is illustrated in FIG. 7 by those components withinthe inner dashed line.

Computing device 700 may have additional features or functionality, andadditional interfaces to facilitate communications between basicconfiguration 702 and any required devices and interfaces. For example,a bus/interface controller 730 may be used to facilitate communicationsbetween basic configuration 702 and one or more data storage devices 732via a storage interface bus 734. Data storage devices 732 may beremovable storage devices 736, non-removable storage devices 738, or acombination thereof. Examples of removable storage and non-removablestorage devices include magnetic disk devices such as flexible diskdrives and hard-disk drives (HDD), optical disk drives such as compactdisk (CD) drives or digital versatile disk (DVD) drives, solid statedrives (SSD), and tape drives to name a few. Example computer storagemedia may include volatile and nonvolatile, removable and non-removablemedia implemented in any method or technology for storage ofinformation, such as computer readable instructions, data structures,program modules, or other data.

System memory 706, removable storage devices 736 and non-removablestorage devices 738 are examples of computer storage media. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich may be used to store the desired information and which may beaccessed by computing device 700. Any such computer storage media may bepart of computing device 700.

Computing device 700 may also include an interface bus 740 forfacilitating communication from various interface devices (e.g., outputdevices 742, peripheral interfaces 744, and communication devices 746)to basic configuration 702 via bus/interface controller 730. Exampleoutput devices 742 include a graphics processing unit 748 and an audioprocessing unit 750, which may be configured to communicate to variousexternal devices such as a display or speakers via one or more A/V ports752. Example peripheral interfaces 744 include a serial interfacecontroller 754 or a parallel interface controller 756, which may beconfigured to communicate with external devices such as input devices(e.g., keyboard, mouse, pen, voice input device, touch input device,etc.) or other peripheral devices (e.g., printer, scanner, etc.) via oneor more I/O ports 758. An example communication device 746 includes anetwork controller 760, which may be arranged to facilitatecommunications with one or more other computing devices 762 over anetwork communication link via one or more communication ports 764.

The network communication link may be one example of a communicationmedia. Communication media may typically be embodied by computerreadable instructions, data structures, program modules, or other datain a modulated data signal, such as a carrier wave or other transportmechanism, and may include any information delivery media. A “modulateddata signal” may be a signal that has one or more of its characteristicsset or changed in such a manner as to encode information in the signal.By way of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), microwave,infrared (IR) and other wireless media. The term computer readable mediaas used herein may include both storage media and communication media.

Computing device 700 may be implemented as a portion of a small-formfactor portable (or mobile) electronic device such as a cell phone, apersonal data assistant (PDA), a personal media player device, awireless web-watch device, a personal headset device, an applicationspecific device, or a hybrid device that include any of the abovefunctions. Computing device 700 may also be implemented as a personalcomputer including both laptop computer and non-laptop computerconfigurations.

In various embodiments, the technology implements a method performed bya computing device having a processor and memory, comprising: detectinga tilt angle of a display of the computing device in relation to asurface; and if the tilt angle is less than a specified threshold tiltangle, disabling a rotation function. The method can further compriseenabling the rotation function if the tilt angle is equal to or morethan the specified threshold tilt angle. The method can further comprisedetecting includes receiving a signal from a sensor indicating the tiltangle. The detecting can include receiving a signal from anaccelerometer indicating the tilt angle or receiving a signal from asensor that measures motion in at least three axes. The method canfurther comprise enabling the rotation function if a rotation switch isactivated wherein the activated rotation switch overrides disabling therotation function. The threshold tilt angle can be approximately equalto ninety degrees. The method can further comprise determining whetherthe display of the computing device is being viewed by a user while theuser is situated in a supine position on the surface.

In various embodiments, the technology can include a computer-readablestorage device storing computer-executable instructions, theinstructions comprising: detecting a tilt angle of a display of acomputing device in relation to a plane; and if the tilt angle is lessthan a specified threshold tilt angle, disabling a rotation function.The instructions can further comprise determining whether the display ofthe computing device is being viewed by a user while the user issituated in a supine position on the surface. The instructions canfurther comprise detecting includes querying a sensor for the tiltangle. The detecting can include querying a six-axis sensor andreceiving information indicating the tilt angle.

In various embodiments, the technology is implemented by a system fordetecting whether to disable a rotation function of a computing devicehaving a processor, memory, and a display, comprising: a sensorconfigured to detect a tilt angle of a display surface in relation to aplane; and a component configured to disable a rotation function of thecomputing device if a difference between the tilt angle and a specifiedthreshold tilt angle exceeds a specified value. The plane can beperpendicular to a force of gravity. The sensor is an accelerometer,e.g., a six-axis accelerometer. The plane can be a surface on which auser views the display while the user is in a supine position. Thesystem can further comprise a rotation switch that, if actuated,overrides the component configured to disable rotation. The system canfurther comprise one or more means for computing the difference betweenthe tilt angle and the specified threshold tilt angle. The system canfurther comprise one or more means for disabling the rotation function.The sensor can be a gyroscopic sensor.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims. Accordingly, the invention isnot limited except as by the appended claims.

I claim:
 1. A system for detecting whether to disable a rotationfunction of a computing device having a processor, memory, and adisplay, comprising: a sensor configured to detect a tilt angle of adisplay surface in relation to a plane; and a component configured todisable a rotation function of the computing device if a differencebetween the tilt angle and a specified threshold tilt angle exceeds aspecified value.
 2. The system of claim 1 wherein the plane isperpendicular to a force of gravity.
 3. The system of claim 1 whereinthe sensor is an accelerometer.
 4. The system of claim 1 wherein thesensor is a six-axis accelerometer.
 5. The system of claim 1 wherein theplane is a surface on which a user views the display while the user isin a supine position.
 6. The system of claim 1 further comprising arotation switch that, if actuated, overrides the component configured todisable rotation.
 7. The system of claim 1 further comprising means forcomputing the difference between the tilt angle and the specifiedthreshold tilt angle.
 8. The system of claim 1 further comprising meansfor disabling the rotation function.
 9. The system of claim 1 whereinthe sensor is a gyroscopic sensor.
 10. The system of claim 1 wherein thesensor provides an indication of an angle between the plane and adirection of gravity.